<?php
  // Instancia um Array de Produtos
  $produtos = array();
    
  // Populando o Array de Produtos
  $produtos [] = array(
  'codigo' => 1001,
  'nome' => 'Pen-Drive',
  'fabricante' => 'Sony',
  'descricao' => 'Pen-Drive Sony Preto 16 GB',
  'preco' => 29.32,
  'quantidade' => 10
  );
  
  $produtos [] = array(
  'codigo' => 1002,
  'nome' => 'HD Externo',
  'fabricante' => 'Samsung',
  'descricao' => 'Samsung 1 TB',
  'preco' => 230.00,
  'quantidade' => 50
  );
  
  $doc = new DOMDocument();
  
  $doc->formatOutput = true;

  // Cria o Elemento raiz
  $r = $doc->createElement( "produtos" );
  
  $doc->appendChild( $r );

  foreach( $produtos as $produto )
  {
  // Elemento Produto
  $prod 		= $doc->createElement( "produto" );
  
  // Cria um Atributo
  $codigo		=  $doc->createAttribute( "codigo" );
  
  // Criando os Elementos Filhos do Elemento Produto
  $nome 		= $doc->createElement( "nome" );
  $descricao 	= $doc->createElement( "descricao" );
  $fabricante 	= $doc->createElement( "fabricante" );
  $preco 		= $doc->createElement( "preco" );
  $quantidade 	= $doc->createElement( "quantidade" );
  
  // Recupera os dados do Array de Produtos
  
  $codigo->appendChild(
	$doc->createTextNode( $produto['codigo'] )
  ); 
  
  $nome->appendChild(
	$doc->createTextNode( $produto['nome'] )
  );
  
  $descricao->appendChild(
	$doc->createTextNode( $produto['descricao'] )
  );
  
  $fabricante->appendChild(
	$doc->createTextNode( $produto['fabricante'] )
  );
  
  $preco->appendChild(
	$doc->createTextNode( $produto['preco'] )
  );
  
  $quantidade->appendChild(
	$doc->createTextNode( $produto['quantidade'] )
  );
  
  // Incluir atributo código no elemento 'produto'
  $prod->appendChild( $codigo ); 
 
  // Adicionar os Elementos 'nome,descricao,fabricante,preco, quantidade' no elemento 'produto'
  $prod->appendChild( $nome );
  $prod->appendChild( $descricao );
  $prod->appendChild( $fabricante );
  $prod->appendChild( $preco );
  $prod->appendChild( $quantidade );

  // Inclui o elemento 'produto' no elemento raiz
  $r->appendChild( $prod );
  }

  // Salva a estrutura do XML
  $doc->saveXML();
  
  // Gera um documento XML com a estrutura definida
  $doc->save('listaProdutos.xml');
  ?>